# knitr::spin("acumula22_hist.R", knit = FALSE) # Crea .Rmd
# knitr::purl("acumula22_hist.Rmd", documentation = 2) # Crea .R spin
# PENDIENTE:
# Generar un fichero de cambios:
# Bucle last:2 / Empezar solo con last
# AƱadir ficheros 2:(last - 1) a files[last] y calcular diferencia/error y lag/horizonte
# AnÔlisis descriptivo: dispersión/boxplot error|lag
library(dplyr, warn.conflicts = FALSE)
library(tidyr)
files <- dir(pattern = paste0('^acumula22_\\d{2}_\\d{2}_\\d{2}\\.RData'))
fechas.txt <- substr(files, 11, 18)
fechas <- as.Date(fechas.txt, format = "%y_%m_%d")
last <- length(files)
semanas <- 6
fecha.ini <- fechas[last] - 7*semanas - 1
colors <- gray((last - seq_along(files))/last)
# Cargar datos
datos <- lapply(files, function(f) {
load(f)
return(acumula22)
})
names(datos) <- fechas
# Obtener niveles
load("../ccaas.RData")
iso <- names(datos[[1]]) # names(ccaas)
respuestas <- c("confirmados", "hospitalizados", "uci", "fallecidos") # names(datos[[1]][[1]])
Se genera un grÔfico con toda la serie hasta 2021-01-28 y otro de las últimas 6 semanas (desde 2020-12-17).
La legenda (color de las lĆneas) indica la fecha en la que se reportaron los datos.
for (r in respuestas) { # r <- "confirmados"
cat("\n\n# ", r, "\n\n")
for (ca in iso) { # ca <- "ES"
cat("\n\n## ", ccaas[ca], "\n\n")
old.par <- par(mfrow = c(1, 2))
plot(observado ~ fecha, data = datos[[last]][[ca]][[r]],
type = "l", main = paste(ccaas[ca], r), xlab = "Fecha", ylab = r,
col = colors[last])
lapply(1:(last-1), function(i)
lines(observado ~ fecha, data = datos[[i]][[ca]][[r]],
col = colors[i]))
legend("topleft", names(datos), lty = 1, col = colors)
plot(observado ~ fecha, data = datos[[last]][[ca]][[r]],
type = "l", main = paste(ccaas[ca], r), xlab = "Fecha", ylab = r,
col = colors[last], subset = fecha > fecha.ini - 1)
lapply(1:(last-1), function(i)
lines(observado ~ fecha, data = datos[[i]][[ca]][[r]],
col = colors[i], subset = fecha > fecha.ini - 1))
# legend("topleft", names(datos), lty = 1, col = colors)
par(old.par)
} # for (ca in iso)
} # for (r in respuestas)